<?php
/**
 * foreach
 * 1.foreach变量名使用一些固定的临时变量,防止覆盖已经定义的变量
 * 比如 $k $v $index $value
 * $key 通常作为缓存变量,谨慎使用
 * 2. 遍历对象,会遍历对象的公有属性,不会遍历对象的方法
 * 3.foreach() 可以用于遍历实现了 Iterator 或 IteratorAggregate 接口的对象。
 * 在 Laravel 中，集合（Collection）和 Eloquent 模型等类已经内置了对 foreach() 的支持
 */
echo "foreach 遍历用的\$k, \$v,会覆盖之前定义的变量,
所以定义foreach变量名使用一些固定的临时变量,防止被覆盖\n";
$a = range(1,1);
$k = 'k';
$v = 'v';

foreach($a  as $k => $v) {
    var_dump($k, $v);
}


var_dump($k, $v);

$obj = New Class{
    public $a = "value1";
    public $b = "value2";
    protected $c = 3;   
};

foreach($obj as $k => $v) {
    var_dump($k, $v);
}
